# cmake最低版本
cmake_minimum_required(VERSION 3.20)
# 工程名称
project(CALC)

# set(SRC div.cpp main.cpp mul.cpp sub.cpp add.cpp)

# 可以用aux_source_directory搜索相关文件
aux_source_directory(${PROJECT_SOURCE_DIR} SRC)

# 也可以用file命令获取文件，GLOB_RECURSE:递归
# file(GLOB SRC ${PROJECT_SOURCE_DIR}/*.cpp)

# 设置使用的c++标准
set(CMAKE_CXX_STANDARD 11)

# 设置可执行文件的输出路径
# CMAKE_CURRENT_SOURCE_DIR cmakeLists.txt 所处的文件夹路径
# PROJECT_SOURCE_DIR cmake后跟的路径
# 由于linux下生成的动态库默认有执行权限，可以通过该宏指定生成路径，但是静态库不行
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/output)
# 生成库都可以用LIBRARY_OUTPUT_PATH这个宏来实现
# set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

# 当头文件和源文件不在同一个路径下，有两种解决方法
# 1. 对每个源文件加上路径(太麻烦)
# 2. 利用cmake命令指定源文件
include_directories(${PROJECT_SOURCE_DIR}/include)

# 如果不是系统的库，也就是没有安装进系统的，需要自己指定库的路径
link_directories(${PROJECT_SOURCE_DIR}/lib/lib_static)
# 链接静态库
link_libraries(calc)

# 利用cmkae制作可执行程序
add_executable(app ${SRC})

# 利用cmake命令制作静态库
# add_library(calc STATIC ${SRC})
# 利用cmake命令制作静态库
# add_library(calc SHARED ${SRC})
